//Figure 1: Essential PPM //Author : Sriram Rajagopalan //Portfolio Table Portfolios { Portfolio_Id integer [pk] Note: 'Stores Portfolio Information' } //Program aka Project Group Table ProjectGroups { Project_Group_Id integer [pk] Portfolio_Id integer Note: 'Stores Program aka Project Group information' } //Product Template Table ProductTemplate { Project_Template_Id integer [pk] Note: 'Stores Template Information used at the Product level' } // Projects aka Products Table Projects { Project_Id integer [pk] Project_Template_id integer Project_Group_Id integer Note: 'Stores Project aka Product information' } //Releases Table Releases { Release_Id integer [pk] Project_Id integer Project_Group_Id integer Note: 'Stores release information the Product level' } //Components Table Components { Component_Id integer [pk] Project_Id integer Project_Group_Id integer Note: 'Stores component information at the Product level' } //Project Tags Table ProjectTags { Project_Id integer Note: 'Stores Tags information at the Product level' } //Minimal Relationships Ref: "Portfolios"."Portfolio_Id" - "ProjectGroups"."Portfolio_Id" Ref: "ProjectGroups"."Project_Group_Id" - "Projects"."Project_Group_Id" Ref: "ProductTemplate"."Project_Template_Id" - "Projects"."Project_Template_id" Ref: "Projects"."Project_Id" - "Releases"."Project_Id" Ref: "Components"."Project_Id" - "Projects"."Project_Id" Ref: "Projects"."Project_Id" - "ProjectTags"."Project_Id"